#version 300 es

// 顶点
in vec2 a_position;

// 纹理
in vec2 a_texCoord;

// canvas宽高
uniform vec2 u_resolution;

// 用于将纹理坐标传递给片段着色器
out vec2 v_texCoord;

void main(){
    // convert the position from pixels to 0.0 to 1.0
    vec2 zeroToOne=a_position/u_resolution;
    
    // convert from 0->1 to 0->2
    // convert from 0->2 to -1->+1 (clipspace)
    vec2 clipSpace=zeroToOne*2.-1.;
    
    // *vec2(1,-1)是因为屏幕图片坐标系与webgl纹理不一致
    gl_Position=vec4(clipSpace*vec2(1,-1),0,1);
    
    // 将 texCoord 传递给片段着色器
    // GPU 将在点之间进行插值
    v_texCoord=a_texCoord;
}